import router from '@ohos.router';

/**
 * 路由配置常量
 * 统一管理所有页面路径，避免硬编码
 */
export const ROUTES = {
  // 主页面
  INDEX: 'pages/Index',

  // 主要功能页面
  TUJIAN: { targetTabIndex: 0 },
  ZHUQU: { targetTabIndex: 1 },
  XIANGXIANG: { targetTabIndex: 3 },
  FABU: { targetTabIndex: 2 },
  WODE: { targetTabIndex: 4 },

  // 公共页面
  SOUSUO: 'pages/Common/Linggan/Sousuo',
  XIANGQING: 'pages/Common/Xiangqing/xiangqing',

  // 详情页面
  DETAILS: 'pages/Details/GengduoDetails',
  DETAIL_VIDEO: 'pages/Details/DetailVideo',
  DETAILS_VIDEO_PAGE: 'pages/Details/DetailsVideoPage',

  // 设置页面
  INSTALL: 'pages/Wode/install/install_page',

  // 功能页面
  FABUZHUQU: 'pages/Fabu/Fabuzhuaqu',
  XIANGXIANG_INDEX: 'pages/Xiangxiang/indexs',
  //我的页面 编辑信息
  EDITPERSONAL: 'pages/Wode/edit/EditPersonal',
} as const;

/**
 * 路由参数类型定义
 */
export interface RouteParams {
  id?: number;
  title?: string;
  content?: string;
  [key: string]: any;
}

/**
 * 路由工具类
 * 提供统一的路由操作方法
 */
export class RouterUtils {
  /**
   * 页面跳转
   * @param route 路由路径
   * @param params 传递的参数
   */
  static push(route: string, params?: RouteParams): void {
    router.pushUrl({
      url: route,
      params,
    });
  }

  /**
   * 返回上一页
   */
  static back(): void {
    router.back();
  }

  /**
   * 获取路由参数
   * @returns 路由参数对象
   */
  static getParams<T = RouteParams>(): T {
    return router.getParams() as T;
  }

  /**
   * 清空路由栈并跳转到指定页面
   * @param route 路由路径
   * @param params 传递的参数
   */
  static clearAndPush(route: string, params?: RouteParams): void {
    router.clear();
    this.push(route, params);
  }
}
